package top.frsf.pattern.c_behavioral.a_strategy.source.context;

import lombok.Data;
import top.frsf.pattern.c_behavioral.a_strategy.source.enums.DbType;
import top.frsf.pattern.c_behavioral.a_strategy.source.factory.QueryFactory;
import top.frsf.pattern.c_behavioral.a_strategy.source.service.AbstractQuery;

/**
 * 数据源上下文
 *
 * @author He Kuntao
 * @since 2024/8/16 13:08
 */
@Data
public class DatasourceContext {

    /**
     * 根据数据源名称获取查询对象
     *
     * @param type 数据源类型
     * @return 数据查询策略
     */
    public static AbstractQuery getQuery(String type) {
        DbType dbType = DbType.valueOf(type.toUpperCase());
        return QueryFactory.createQuery(dbType);
    }
}
